This service of Lokijs for Angular simplifies things to the most basic level because i found Loki difficult to work with in a mobile environment. all you do is setup json files that specify the layout of your data then add, and update entries to the databases.
###Install:
bower install lokijs
###Html:
<script src="bower_components/lokijs/src/lokijs.js"></script>
<script src="bower_components/lokijs/src/loki-angular.js"></script>
###App:
angular.module('app',['lokijs']);
###Configure database template:
I might call this file -> json_locations.js
Note: each one has to be called, json1, json2, json3, etc as shown in the following:
app.constant(
'json1',
{
"db":"settings",
"collection": "globals" ,
"documents" :
[
{
"name": "user settings",
"brands" : true,
"random" : "some value"
}
]
}
);
###Controller:
app.controller('myCtrl', function($scope, Lokiwork){...});
###Usage:
Lokiwork.setCurrentDoc(dbname, collection, document_identifier);
Lokiwork.setCurrentDoc('settings', 'globals', {'name': "user settings"});
Lokiwork.getCurrentDoc();
Lokiwork.getCurrentDoc();
Lokiwork.updateCurrentDoc(name, value);
Lokiwork.updateCurrentDoc("power", true);
Lokiwork.deleteCurrentDoc();
Lokiwork.deleteCurrentDoc();
Lokiwork.getDoc(dbName, collName, docName);
Lokiwork.getDoc("settings", "globals", {name:"user settings"});
Lokiwork.addDocument(dbName, collName, newDoc);
Lokiwork.addDocument("settings", "globals", doc_obj); //example below
Lokiwork.updateDoc(dbname, collName, document_identifier, name, value);
Lokiwork.updateDoc("settings", "globals", {name:"user settings"}, "brands", false});
Lokiwork.deleteDocument(dbName, collName, document_identifier);
Lokiwork.deleteDocument('settings','globals', {name:'user settings'});
Lokiwork.getCollection(dbName, collName);
Lokiwork.getCollection('settings', 'globals');
Lokwork.addCollection(json_obj);
Lokiwork.addCollection(item); // example below
Lokiwork.deleteCollection(dbName, collName);
Lokiwork.deleteCollection('settings', globals');
Lokiwork.deleteDatabase(dbName);
Lokiwork.deleteDatabase("settings");
####Further examples:
var collection = {
"db":"settings",
"collection": "globals" ,
"documents" :
[
{
"name": "user settings",
"brands" : true,
"face" : "You now it"
}
]
};
Lokiwork.addCollection(collection);
With addDocument, you can pass a json document in if it's small enough, otherwise assign it to a variable first.
Lokiwork.addDocument("settings", "globals", {name:"user settings2", gay: true, brands:false})
You can also use promises and/or chain them:
Lokiwork.setCurrentDoc('settings', 'globals', {'name': "user settings"})
.then(function(data){
Lokiwork.updateCurrentDoc("address", "1801 Waters Ridge Drive");
});
###Remember! A lot of the above commands may not be necessary if you are implementing a static change, just edit the underlying json javascript file, delete the local storage file, and restart the app.
###Notes:
###The official Lokijs page LokiJS
Generated using TypeDoc